util.AddNetworkString( "KKB_Settings_Reload" )
function KKB.Send_Settings( Ply )
	net.Start( "KKB_Settings_Reload" )
	net.WriteTable( KKB.Settings )
	if ( IsValid(Ply) ) then
		net.Send( Ply )
	else
		net.Broadcast()
	end
end

util.AddNetworkString( "KKB_UserGroups_Reload" )
function KKB.Send_UserGroups( Ply )
	net.Start( "KKB_UserGroups_Reload" )
	net.WriteTable( KKB.UserGroups )
	if ( IsValid(Ply) ) then
		net.Send( Ply )
	else
		net.Broadcast()
	end
end

util.AddNetworkString( "KKB_CustomUsers_Reload" )
function KKB.Send_CustomUsers( Ply )
	net.Start( "KKB_CustomUsers_Reload" )
	net.WriteTable( KKB.CustomUsers )
	if ( IsValid(Ply) ) then
		net.Send( Ply )
	else
		net.Broadcast()
	end
end

util.AddNetworkString( "KKB_RestrictedTools_Reload" )
function KKB.Send_ToolgunRestrictions( Ply )
	net.Start( "KKB_RestrictedTools_Reload" )
	net.WriteTable( KKB.ToolgunRestrictions )
	if ( IsValid(Ply) ) then
		net.Send( Ply )
	else
		net.Broadcast()
	end
end

util.AddNetworkString( "KKB_RestrictedVehicles_Reload" )
function KKB.Send_VehicleRestrictions( Ply )
	net.Start( "KKB_RestrictedVehicles_Reload" )
	net.WriteTable( KKB.VehicleRestrictions )
	if ( IsValid(Ply) ) then
		net.Send( Ply )
	else
		net.Broadcast()
	end
end

util.AddNetworkString( "KKB_RestrictedEntitys_Reload" )
function KKB.Send_EntityRestrictions( Ply )
	net.Start( "KKB_RestrictedEntitys_Reload" )
	net.WriteTable( KKB.EntityRestrictions )
	if ( IsValid(Ply) ) then
		net.Send( Ply )
	else
		net.Broadcast()
	end
end

util.AddNetworkString( "KKB_RestrictedWeapons_Reload" )
function KKB.Send_WeaponRestrictions( Ply )
	net.Start( "KKB_RestrictedWeapons_Reload" )
	net.WriteTable( KKB.WeaponRestrictions )
	if ( IsValid(Ply) ) then
		net.Send( Ply )
	else
		net.Broadcast()
	end
end

util.AddNetworkString( "KKB_RestrictedNPCs_Reload" )
function KKB.Send_NPCRestrictions( Ply )
	net.Start( "KKB_RestrictedNPCs_Reload" )
	net.WriteTable( KKB.NPCRestrictions )
	if ( IsValid(Ply) ) then
		net.Send( Ply )
	else
		net.Broadcast()
	end
end

util.AddNetworkString( "KKB_Models_Reload" )
function KKB.Send_BlockedModels( Ply )
	net.Start( "KKB_Models_Reload" )
	net.WriteTable( KKB.BlockedModels )
	if ( IsValid(Ply) ) then
		net.Send( Ply )
	else
		net.Broadcast()
	end
end

util.AddNetworkString( "KKB_Damage_Reload" )
function KKB.Send_Damage( Ply )
	net.Start( "KKB_Damage_Reload" )
	net.WriteTable( KKB.Damage )
	if ( IsValid(Ply) ) then
		net.Send( Ply )
	else
		net.Broadcast()
	end
end

local function KKB_Reload_ActivePlayers()
	KKB.Send_Settings( Ply )
	KKB.Send_UserGroups( Ply )
	KKB.Send_CustomUsers( Ply )
	KKB.Send_ToolgunRestrictions( Ply )
	KKB.Send_VehicleRestrictions( Ply )
	KKB.Send_EntityRestrictions( Ply )
	KKB.Send_WeaponRestrictions( Ply )
	KKB.Send_NPCRestrictions( Ply )
	KKB.Send_BlockedModels( Ply )
	KKB.Send_Damage( Ply )
end

timer.Create("KKB_Reload_ActivePlayers_Timer", 90, 0, KKB_Reload_ActivePlayers)

function KKB.PlayerInitialSpawn( Ply )
	KKB_Reload_ActivePlayers()
end
hook.Add("PlayerInitialSpawn", "KKB.PlayerInitialSpawn", KKB.PlayerInitialSpawn)